
public class StackSorter {
	public static int compare (String a, String b){
		return a.compareTo(b);
	}
	
	public static void insertionSort (Pilha p){
		Pilha pilha = new Pilha();
		
		pilha.setTop(p.getTop());
		pilha.setSize(p.getSize());
		
		Pilha tmpCompare = new Pilha();
		Pilha pilhaOrder = new Pilha();
		int N = pilha.getSize();
		String key = new String();
		String aux = new String();
				
		while (pilhaOrder.getSize() != N){
			key = pilha.pop();
			while (!pilha.isEmpty()){
				aux = pilha.pop();
										
				if (compare(key, aux) == -1){
					tmpCompare.push(key);
					key = aux;
				}
				else
					tmpCompare.push(aux);
			}
			
			pilhaOrder.push(key);
			
			pilha.setTop(tmpCompare.getTop());
			pilha.setSize(tmpCompare.getSize());
			tmpCompare.setTop(null);
			tmpCompare.setSize(0);
		}
		
		int sizePilhaOrder = pilhaOrder.getSize();
		for (int i = 0; i < sizePilhaOrder; i++)
			System.out.print(pilhaOrder.pop() + " ");
		System.out.println("\n");
	}
}
